<title><MT_TRANS phrase="Movable Type System Check"> [mt-check.cgi]</title>
<style type=\"text/css\">
<!--
body {
font-family : Trebuchet MS, Tahoma, Verdana, Arial, Helvetica, Sans Serif;
font-size : smaller;
padding-top : 0px;
padding-left : 0px;
margin : 0px;
padding-bottom : 40px;
width : 80%;
border-right : 1px dotted #8faebe;
}
h1 {
background : #8faebe;
font-size: large;
color : white;
padding : 10px;
margin-top : 0px;
margin-bottom : 20px;
text-align : center;
}
h2 {
color: #fff;
font-size: small;
background : #8faebe;
padding : 5px 10px 5px 10px;
margin-top : 30px;
margin-left : 40px;
margin-right : 40px;
}
h3 {
color: #333;
font-size: small;
margin-left : 40px;
margin-bottom : 0px;
padding-left : 20px;
}
p {
padding-left : 20px;
margin-left : 40px;
margin-right : 60px;
color : #666;
}
ul {
padding-left : 40px;
margin-left : 40px;
}
.info {
margin-left : 60px;
margin-right : 60px;
padding : 20px;
border : 1px solid #666;
background : #eaf2ff;
color : black;
}
.alert {
padding : 15px;
border : 1px solid #666;
background : #ff9;
color : black;
}
.ready {
color: #fff;
background-color: #9C6;
}
.bad {
padding-top : 0px;
margin-top : 4px;
border-left : 1px solid red;
padding-left : 10px;
margin-left : 60px;
}
.good {
color: #93b06b;
padding-top : 0px;
margin-top : 0px;
}
//-->
</style>
</head>
<body>
<h1><MT_TRANS phrase="Movable Type System Check"> [mt-check.cgi]</h1>
<p class="info"><MT_TRANS phrase="This page provides you with information on your system\'s configuration and determines whether you have all of the components you need to run Movable Type."></p>
HTML
my $is_good = 1;
my @REQ = (
[ 'HTML::Template', 2, 1, translate('HTML::Template is required for all Movable Type application functionality.') ],
[ 'Image::Size', 0, 1, translate('Image::Size is required for file uploads (to determine the size of uploaded images in many different formats).') ],
[ 'File::Spec', 0.8, 1, translate('File::Spec is required for path manipulation across operating systems.') ],
[ 'CGI::Cookie', 0, 1, translate('CGI::Cookie is required for cookie authentication.') ],
);
my @DATA = (
[ 'DB_File', 0, 0, translate('DB_File is required if you want to use the Berkeley DB/DB_File backend.') ],
[ 'DBD::mysql', 0, 0, translate('DBI and DBD::mysql are required if you want to use the MySQL database backend.') ],
[ 'DBD::Pg', 0, 0, translate('DBI and DBD::Pg are required if you want to use the PostgreSQL database backend.') ],
[ 'DBD::SQLite', 0, 0, translate('DBI and DBD::SQLite are required if you want to use the SQLite database backend.') ],
);
my @OPT = (
[ 'HTML::Entities', 0, 0, translate('HTML::Entities is needed to encode some characters, but this feature can be turned off using the NoHTMLEntities option in mt.cfg.') ],
[ 'LWP::UserAgent', 0, 0, translate('LWP::UserAgent is optional; It is needed if you wish to use the TrackBack system, the weblogs.com ping, or the MT Recently Updated ping.') ],
[ 'SOAP::Lite', 0.50, 0, translate('SOAP::Lite is optional; It is needed if you wish to use the MT XML-RPC server implementation.') ],
[ 'File::Temp', 0, 0, translate('File::Temp is optional; It is needed if you would like to be able to overwrite existing files when you upload.') ],
[ 'Image::Magick', 0, 0, translate('Image::Magick is optional; It is needed if you would like to be able to create thumbnails of uploaded images.') ],
[ 'Storable', 0, 0, translate('Storable is optional; it is required by certain MT plugins available from third parties.')],
[ 'Crypt::DSA', 0, 0, translate('Crypt::DSA is optional; if it is installed, comment registration sign-ins will be accelerated.')],
[ 'MIME::Base64', 0, 0, translate('MIME::Base64 is required in order to enable comment registration.')],
[ 'XML::Atom', 0, 0, translate('XML::Atom is required in order to use the Atom API.')],
);
use Cwd;
my $cwd = '';
{
my($bad);
local $SIG{__WARN__} = sub { $bad++ };
eval { $cwd = Cwd::getcwd() };
if ($bad || $@) {
eval { $cwd = Cwd::cwd() };
if ($@ && $@ !~ /Insecure \$ENV{PATH}/) {
die $@;
}
}
}
my $ver = $^V ? join('.', unpack 'C*', $^V) : $];
print trans_templ(<<INFO);
<h2><MT_TRANS phrase="System Information:"></h2>
<ul>
<li><strong><MT_TRANS phrase="Current working directory:"></strong> <code>$cwd</code></li>
<p class="info"><MT_TRANS phrase="The following modules are"> <strong><MT_TRANS phrase="optional"></strong>; <MT_TRANS phrase="If your server does not have these modules installed, you only need to install them if you require the functionality that the module provides."></p>
MSG
}
if ($data) {
print trans_templ(<<MSG);
<p class="info"><MT_TRANS phrase="The following modules are used by the different data storage options in Movable Type. In order run the system, your server needs to have"> <strong><MT_TRANS phrase="at least one"></strong> <MT_TRANS phrase="of these modules installed."></p>
MSG
}
my $got_one_data = 0;
for my $ref (@$list) {
my($mod, $ver, $req, $desc) = @$ref;
print " <h3>$mod" .
($ver ? " (version >= $ver)" : "") . "</h3>";
eval("use $mod" . ($ver ? " $ver;" : ";"));
if ($@) {
$is_good = 0 if $req;
my $msg = $ver ?
trans_templ("<p class=\"bad\"><MT_TRANS phrase=\"Either your server does not have \">$mod <MT_TRANS phrase=\"installed, the version that is installed is too old, or \">$mod <MT_TRANS phrase=\"requires another module that is not installed.\" ") :
trans_templ("<p class=\"bad\"><MT_TRANS phrase=\"Your server does not have\"> $mod <MT_TRANS phrase=\"installed, or \">$mod <MT_TRANS phrase=\"requires another module that is not installed.\"> ");
$msg .= $desc .
trans_templ(' <MT_TRANS phrase="Please consult the installation instructions for help in installing"> '.$mod.". </p>\n\n");
<h2 class="ready"><MT_TRANS phrase="Movable Type System Check Successful"></h2>
<p><strong><MT_TRANS phrase="You\'re ready to go!"></strong> <MT_TRANS phrase="Your server has all of the required modules installed; you do not need to perform any additional module installations. Continue with the installation instructions."> <!-- If this is your first time configuring Movable Type on this system, you can now run <a href="./mt-load.cgi">mt-load.cgi</a>, and you <strong>must</strong> delete mt-load.cgi after it has successfully been run. --> </p>